home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
mac
/
files
/
dsp
/
56000tar.z
/
56000tar
/
56000
/
flts
/
iir4.hlp
< prev
next >
Wrap
Text File
|
1991-11-26
|
2KB
|
74 lines
2 IIR4
Name: IIR4.ASM
Type: Assembler Macro
Version: 1.0
Date Entered: 15-Jul-87
Last Change: 15-Jul-87
Description: Second Order Direct Canonic Filter
This macro implements a second order filter with a minimum of
delay elements. The difference equation relating the output
to the input is:
y(n) = a(1)y(n-1) + a(2)y(n-2) + x(n) + b(1)x(n-1) + b(2)x(n-2)
with z transform:
-1 -2
Y(z) 1 + b(1)z + b(2)z
------- = ----------------------
X(z) -1 -2
1 - a(1)z - a(2)z
where:
x(n) = input sample at time nT
y(n) = output of the filter at time nT
a(n) = filter coefficient n (magnitude less than one)
b(n) = filter coefficient n (magnitude less than one)
T = sample period
In this example, it is assumed that b(0)=1. A network to
implement this filter is shown below.
Input w(n)
x(n) >----(+)--------------------------(+)-----> y(n)
^ | ^ Output
| a(1) 1/z b(1) |
(+)<-- 0.8 -----|---- 0.4 -->(+)
^ v ^
| a(2) 1/z b(2) |
(+)<-- -0.3 ----|--- -0.6 -->(+)
For the above filter, the memory map for the filter
states and the coefficients is shown below.
r0
|
v
-------------------
X: | | |
| w(n-1) | w(n-2) | Filter States
-------------------
-------------------------------------
Y: | a(1) | a(2) | b(1) | b(2) |
| .8 | -.3 | .4 | -.6 | Filter Coefficients
-------------------------------------
^
|
r4 m0=3 (mod 4)
Memory Map for the Biquad Filter
The address register r0 is initialized pointing to the first
filter state and r4 is initialized pointing to the filter
coefficients. Modulo register m0 is set to -1 to provide
linear arithmetic. Modulo register m4 is set to 3 providing
modulo 4 arithmetic.
For an example of how to use this filter see the test program IIR4T.ASM